using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using MakeIT.Framework.Util;
using MakeIT.Look.Imagem.Entidades;
using MakeIT.Look.Imagem.Negocios;
using AjaxControlToolkit;
using System.Diagnostics;

namespace MakeIT.Look.Imagem.Apresentacao
{
    public partial class CadastroPlaylist : System.Web.UI.Page
    {

        UsuarioVO usuarioVO = null;
        protected LookDAOT LookDAOT = null;
        string id = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            this.LookDAOT = new LookDAOT();
            usuarioVO = (UsuarioVO)this.Session["userActive"];

            if (!IsPostBack)
            {
                Util.HabilitarCampos(false, this.panelCad);

                this.panelPlaylistitem.Enabled = false;
            }
        }

        protected void Page_Unload(object sender, EventArgs e)
        {
            try
            {
                if (this.LookDAOT != null)
                    this.LookDAOT.closeDAO();
            }
            catch (Exception ex) { }
        }

        protected void grvResultado_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            this.grvResultado.PageIndex = e.NewPageIndex;
            btnPesquisa_Click(null, null);
        }
        /// <summary>
        /// Manipula o evento do botão btnSalvar
        /// </summary>
        /// <param name="sender">Objeto disparador do evento</param>
        /// <param name="e">Argumento do evento</param>
        protected void btnSalvar_Click(object sender, EventArgs e)
        {

            //Declara objetos
            PlaylistVO playlistVO = null;
            bool novoRegistro = false;

            try
            {
                //Verifica se o ID é nulo, se sim = cadastro novo
                if (string.IsNullOrEmpty(this.txtCadIdPlayList.Text))
                {
                    playlistVO = PlaylistVO.CreateVO();
                    playlistVO.cadastro = DateTime.Now;
                    playlistVO.cadastradoPor = usuarioVO.user;

                    novoRegistro = true;

                }
                //Recupera dados para serem alterados
                else
                {
                    //Recupera dados
                    playlistVO = this.LookDAOT.getPlaylist(Int32.Parse(this.txtCadIdPlayList.Text));
                }

                playlistVO.playlist = this.txtCadPlaylist.Text;
                playlistVO.ativo = this.ddlCadAtivo.SelectedIndex != -1;
                playlistVO.edicao = DateTime.Now;
                playlistVO.editadoPor = usuarioVO.user;

                //Chama metodo para salvar ou criar novo registro
                if (novoRegistro)
                    playlistVO.idPlayList = (int)this.LookDAOT.newPlaylist(playlistVO);
                else
                    this.LookDAOT.setPlaylist(playlistVO);

                // Exibe msg de sucesso ao salvar registro
                Util.ExibeAlert(this, "Registro salvo com sucesso!");

                //Popula grid atualizado
                this.btnPesquisa_Click(null, null);

                //Atualiza formulario, apos salvar os dados
                this.txtCadIdPlayList.Text = playlistVO.idPlayList.ToString();
                this.ltCadastradoPor.Text = playlistVO.cadastradoPor;
                this.ltEditadoPor.Text = playlistVO.editadoPor;
                this.ltDataCadastro.Text = playlistVO.cadastro.ToString("dd/MM/yyyy");
                this.ltDataEdicao.Text = playlistVO.edicao.ToString("dd/MM/yyyy");

                //habilita Playlistitem
                if (!this.panelPlaylistitem.Enabled)
                {
                    this.ltCadPlaylistitemPlaylist.Text = playlistVO.ToString();
                    Util.HabilitarCampos(false, this.panelPlaylistitem);
                    this.panelPlaylistitem.Enabled = true;
                    this.btnCadPlaylistitemSalvar.Enabled = false;
                    this.btnCadPlaylistitemEditar.Enabled = false;
                    this.btnCadPlaylistitemExcluir.Enabled = false;
                    //Habilita botoes do arquivo musica
                    //this.btCadPlaylistitemMusicaRemover.Enabled = true;
                    //this.afuCadPlaylistitemMusicaUpload.Enabled = true;
                    //this.hlCadPlaylistitemMusicaDownload.Enabled = true;
                }
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        /// <summary>
        /// Manipula o evento do botão btnPesquisa
        /// </summary>
        /// <param name="sender">Objeto disparador do evento</param>
        /// <param name="e">Argumento do evento</param>
        protected void btnPesquisa_Click(object sender, EventArgs e)
        {

            //Declara objetos
            int? idPlayList = null;
            string playlist = null;
            bool? ativo = null;

            try
            {

                if (!string.IsNullOrEmpty(this.txtIdPlayList.Text))
                {
                    idPlayList = Int32.Parse(this.txtIdPlayList.Text);
                }

                if (!string.IsNullOrEmpty(this.txtPlaylist.Text))
                {
                    playlist = this.txtPlaylist.Text;
                }

                if (!this.ddlAtivo.SelectedValue.Equals(" "))
                {
                    ativo = this.ddlAtivo.SelectedIndex != -1;
                }


                //Recupera a lista de registros segundo a pesquisa
                this.grvResultado.DataSource = this.LookDAOT.getPlaylists(idPlayList, playlist, ativo);

                //Vincula os dados
                this.grvResultado.DataBind();
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        /// <summary>
        /// Manipula o evento do botão btnCancelar
        /// </summary>
        /// <param name="sender">Objeto disparador do evento</param>
        /// <param name="e">Argumento do evento</param>
        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            //Volta para a tab page de pesquisa
            //this.tabPlaylist.ActiveTabIndex = 0;

            // Desabilita os campos para edição
            Util.HabilitarCampos(false, this.panelCad);

            // Destrava botão de edição
            this.btnEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadIdPlayList.Text));

            // Destrava botão de exclusao
            this.btnExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadIdPlayList.Text));

            // Detrava botão de novo
            this.btnNovo.Enabled = true;

            // Desabilita o botão salvar
            this.btnSalvar.Enabled = false;

        }

        protected void imgbVisualizar_Click(object sender, ImageClickEventArgs e)
        {
            // Declara objetos
            PlaylistVO playlistVO = null;
            int idPlayList = 0;

            try
            {
                //Recupera os argumentos com o ID do objeto
                string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
                idPlayList = Int32.Parse(argumentos[0]);

                //Recupera o objeto
                playlistVO = this.LookDAOT.getPlaylist(idPlayList);

                this.txtCadIdPlayList.Text = playlistVO.idPlayList.ToString();
                this.txtCadPlaylist.Text = playlistVO.playlist;
                this.ddlCadAtivo.SelectedValue = (playlistVO.ativo == null ? " " : (playlistVO.ativo.Value ? "S" : "N"));
                this.ltCadastradoPor.Text = playlistVO.cadastradoPor;
                this.ltEditadoPor.Text = playlistVO.editadoPor;
                this.ltDataCadastro.Text = playlistVO.cadastro.ToString("dd/MM/yyyy");
                this.ltDataEdicao.Text = playlistVO.edicao.ToString("dd/MM/yyyy");

                Session["IdPlaylist"] = playlistVO.idPlayList;

                //recupera Playlistitem
                Util.LimparCampos(this.panelPlaylistitem);
                Util.HabilitarCampos(false, this.panelPlaylistitem);
                this.panelPlaylistitem.Enabled = true;
                this.ltCadPlaylistitemPlaylist.Text = playlistVO.ToString();
                this.ltPlaylistitemCadastradoPor.Text = "";
                this.ltPlaylistitemDataCadastro.Text = "";
                this.ltPlaylistitemDataEdicao.Text = "";
                this.ltPlaylistitemEditadoPor.Text = "";
                this.btnCadPlaylistitemSalvar.Enabled = false;
                this.btnCadPlaylistitemEditar.Enabled = false;
                this.btnCadPlaylistitemExcluir.Enabled = false;
                this.afuPlaylistitem.Enabled = true;
                //this.btCadPlaylistitemMusicaRemover.Enabled = false;
                //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
                //this.hlCadPlaylistitemMusicaDownload.Enabled = false;
                this.grvCadPlaylistxPlaylistitem.DataSource = this.LookDAOT.getPlaylistitems(null, playlistVO.idPlayList, null, null, null, null, null, null, null);
                this.grvCadPlaylistxPlaylistitem.DataBind();

                //Habilita tab page do cadastro
                this.tabPlaylist.ActiveTabIndex = 1;

                //Desabilita campos para edição
                Util.HabilitarCampos(false, this.panelCad);

                //Desabilita botão salvar
                this.btnSalvar.Enabled = false;

                //Habilita botão editar
                this.btnEditar.Enabled = true;

                //Habilita botão excluir
                this.btnExcluir.Enabled = true;

                //Habilita botão novo
                this.btnNovo.Enabled = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        // <summary>
        // Manipula o evento editar do web form
        // </summary>
        // <param name="sender">Objeto disparador de evento</param>
        // <param name="e">Argumento do evento</param>
        protected void btnEditar_Click(object sender, EventArgs e)
        {
            // Habilita os campos para edição
            Util.HabilitarCampos(true, this.panelCad);

            // Trava apenas os text box da PK
            this.txtCadIdPlayList.Enabled = false;

            // Trava botão de edição
            this.btnEditar.Enabled = false;

            // Trava botão de exclusao
            this.btnExcluir.Enabled = false;

            // Trava botão de novo
            this.btnNovo.Enabled = false;

            // Habilita o botão salvar
            this.btnSalvar.Enabled = true;

            this.txtCadPlaylist.Focus();
        }

        protected void btnNovo_Click(object sender, EventArgs e)
        {
            //Limpa formulario, para a entrada de novo registro
            Util.LimparCampos(this.panelCad);
            // Habilita os campos para edição
            Util.HabilitarCampos(true, this.panelCad);

            this.ltCadastradoPor.Text = "";
            this.ltEditadoPor.Text = "";
            this.ltDataCadastro.Text = "";
            this.ltDataEdicao.Text = "";

            // Limpa Playlistitem
            Util.LimparCampos(this.panelPlaylistitem);
            Util.HabilitarCampos(false, this.panelPlaylistitem);
            this.ltCadPlaylistitemPlaylist.Text = "";
            this.ltPlaylistitemCadastradoPor.Text = "";
            this.ltPlaylistitemDataCadastro.Text = "";
            this.ltPlaylistitemDataEdicao.Text = "";
            this.ltPlaylistitemEditadoPor.Text = "";
            this.grvCadPlaylistxPlaylistitem.DataSource = null;
            this.grvCadPlaylistxPlaylistitem.DataBind();
            this.panelPlaylistitem.Enabled = false;
            this.btnCadPlaylistitemSalvar.Enabled = false;
            this.btnCadPlaylistitemEditar.Enabled = false;
            this.btnCadPlaylistitemExcluir.Enabled = false;
            //this.btCadPlaylistitemMusicaRemover.Enabled = false;
            //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
            //this.hlCadPlaylistitemMusicaDownload.Enabled = false;

            // Trava apenas os text box da PK
            this.txtCadIdPlayList.Enabled = false;

            // Trava botão de edição
            this.btnEditar.Enabled = false;

            // Trava botão de exclusao
            this.btnExcluir.Enabled = false;

            // Trava botão de novo
            this.btnNovo.Enabled = false;

            // Habilita o botão salvar
            this.btnSalvar.Enabled = true;

            this.txtCadPlaylist.Focus();

        }

        protected void btnExcluir_Click(object sender, EventArgs e)
        {
            //Declara objetos
            PlaylistVO playlistVO = null;

            try
            {
                //Cria objeto
                playlistVO = PlaylistVO.CreateVO();
                playlistVO.idPlayList = Int32.Parse(this.txtCadIdPlayList.Text);

                //verifica se tem booklki dependentes deste registro
                if (this.LookDAOT.getCountBooklkixIdPlayList(playlistVO.idPlayList) > 0)
                {
                    Util.ExibeAlert(this, "Há Book LookImagem(s) associado(s) a este registro. Exclusão não permitida");
                    return;
                }

                //verifica se tem bookcli dependentes deste registro
                if (this.LookDAOT.getCountBookclixIdPlayList(playlistVO.idPlayList) > 0)
                {
                    Util.ExibeAlert(this, "Há Book de Cliente(s) associado(s) a este registro. Exclusão não permitida");
                    return;
                }

                // Remove Playlistitem
                List<PlaylistitemVO> playlistitemVOs = LookDAOT.getPlaylistitems(null, playlistVO.idPlayList, null, null, null, null, null, null, null);
                foreach (PlaylistitemVO playlistitemVO in playlistitemVOs)
                    this.LookDAOT.delPlaylistitem(playlistitemVO);

                //Chama metodo para excluir registro
                this.LookDAOT.delPlaylist(playlistVO);

                // Exibe msg de sucesso ao salvar registro
                Util.ExibeAlert(this, "Registro excluido com sucesso!");

                //Popula grid atualizado
                this.btnPesquisa_Click(null, null);

                //Limpa formulario, apos salvar os dados
                Util.LimparCampos(this.panelCad);
                //Limpa Playlistitem
                Util.LimparCampos(this.panelPlaylistitem);
                Util.HabilitarCampos(false, this.panelPlaylistitem);
                this.panelPlaylistitem.Enabled = false;
                this.ltCadPlaylistitemPlaylist.Text = "";
                this.ltPlaylistitemCadastradoPor.Text = "";
                this.ltPlaylistitemDataCadastro.Text = "";
                this.ltPlaylistitemDataEdicao.Text = "";
                this.ltPlaylistitemEditadoPor.Text = "";
                this.grvCadPlaylistxPlaylistitem.DataSource = null;
                this.grvCadPlaylistxPlaylistitem.DataBind();
                this.btnCadPlaylistitemSalvar.Enabled = false;
                this.btnCadPlaylistitemEditar.Enabled = false;
                this.btnCadPlaylistitemExcluir.Enabled = false;
                //this.btCadPlaylistitemMusicaRemover.Enabled = false;
                //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
                //this.hlCadPlaylistitemMusicaDownload.Enabled = false;

                this.ltCadastradoPor.Text = "";
                this.ltEditadoPor.Text = "";
                this.ltDataCadastro.Text = "";
                this.ltDataEdicao.Text = "";

                // Trava botão de edição
                this.btnEditar.Enabled = false;

                // Trava botão de exclusao
                this.btnExcluir.Enabled = false;

                // Desabilita o botão salvar
                this.btnSalvar.Enabled = false;

                // Habilita o botao novo
                this.btnNovo.Enabled = true;

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
        #region Arquivos
        #region Arquivo Musica
        /*protected void ProcessafuCadPlaylistitemMusicaUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
        {
            // upload do arquivo
            if (afuCadPlaylistitemMusicaUpload.PostedFile.FileName.Length > 0)
            {
                PlaylistitemVO playlistitemVO = PlaylistitemVO.CreateVO();
                playlistitemVO.idPlayListItem = Int32.Parse(this.txtCadPlaylistitemIdPlayListItem.Text);
                playlistitemVO.musicaMime = afuCadPlaylistitemMusicaUpload.PostedFile.ContentType;
                playlistitemVO.musicaNome = afuCadPlaylistitemMusicaUpload.PostedFile.FileName;

                System.IO.Stream st = afuCadPlaylistitemMusicaUpload.PostedFile.InputStream;
                playlistitemVO.musicaTamanho = (int)st.Length;
                byte[] fb = new byte[st.Length];

                fb = afuCadPlaylistitemMusicaUpload.GetBytesFromStream(st);

                playlistitemVO.musica = fb;

                playlistitemVO.edicao = DateTime.Now;
                playlistitemVO.editadoPor = usuarioVO.user;
                this.LookDAOT.setPlaylistitemMusica(playlistitemVO);

            }

        }*/
        protected void afuPlaylistitem_UploadComplete(object sender, AjaxFileUploadEventArgs e)
        {
            try
            {
                if (e.FileName.Length > 0)
                {
                    PlaylistitemVO playlistitemVO = PlaylistitemVO.CreateVO();
                    playlistitemVO.musicaMime = e.ContentType;
                    playlistitemVO.musicaNome = e.FileName;
                    playlistitemVO.musicaTamanho = e.FileSize;

                    playlistitemVO.idPlayList = (int)Session["IdPlaylist"];
                    playlistitemVO.home = Session[this.cblCadPlaylistitemHome.ID] as bool? ?? false;
                    playlistitemVO.staff = Session[this.cblCadPlaylistitemStaff.ID] as bool? ?? false;
                    playlistitemVO.ensaio = Session[this.cblCadPlaylistitemEnsaio.ID] as bool? ?? false;
                    playlistitemVO.evento = Session[this.cblCadPlaylistitemEvento.ID] as bool? ?? false;
                    playlistitemVO.album = Session[this.cblCadPlaylistitemAlbum.ID] as bool? ?? false;
                    playlistitemVO.contato = Session[this.cblCadPlaylistitemContato.ID] as bool? ?? false;
                    playlistitemVO.ativo = (Session[this.ddlCadPlaylistitemAtivo.ID] ?? "N").ToString().Equals("S");

                    playlistitemVO.cadastro = DateTime.Now;
                    playlistitemVO.cadastradoPor = usuarioVO.user;
                    playlistitemVO.edicao = DateTime.Now;
                    playlistitemVO.editadoPor = usuarioVO.user;
                    playlistitemVO.idPlayListItem = (int)this.LookDAOT.newPlaylistitem(playlistitemVO);

                    playlistitemVO.musica = e.GetContents();
                    this.LookDAOT.setPlaylistitemMusica(playlistitemVO);

                    this.grvCadPlaylistxPlaylistitem.DataSource = this.LookDAOT.getPlaylistitems(null, (int)Session["IdPlaylist"], null, null, null, null, null, null, null);
                    this.grvCadPlaylistxPlaylistitem.DataBind();
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                throw;
            }
        }

        protected void btCadPlaylistitemMusicaRemover_Click(object sender, EventArgs e)
        {
            PlaylistitemVO playlistitemVO = PlaylistitemVO.CreateVO();
            playlistitemVO.idPlayListItem = Int32.Parse(this.txtCadPlaylistitemIdPlayListItem.Text);
            playlistitemVO.musica = null;
            playlistitemVO.musicaMime = null;
            playlistitemVO.musicaNome = null;
            playlistitemVO.musicaTamanho = 0;
            this.LookDAOT.setPlaylistitemMusica(playlistitemVO);
            this.ltCadPlaylistitemMusicaMime.Text = "";
            this.ltCadPlaylistitemMusicaNome.Text = "";
            this.ltCadPlaylistitemMusicaTamanho.Text = "";

            // Exibe msg de sucesso ao salvar registro
            Util.ExibeAlert(this, "Arquivo removido!");
        }

        #endregion
        #endregion
        #region PlaylistXPlaylistitem
        protected void btnCadPlaylistitemSalvar_Click(object sender, EventArgs e)
        {
            PlaylistitemVO playlistitemVO = null;
            try
            {
                playlistitemVO = this.LookDAOT.getPlaylistitem(Int32.Parse(this.txtCadPlaylistitemIdPlayListItem.Text));
                playlistitemVO.idPlayList = Int32.Parse(this.txtCadIdPlayList.Text);
                playlistitemVO.home = this.cblCadPlaylistitemHome.SelectedIndex != -1;
                playlistitemVO.staff = this.cblCadPlaylistitemStaff.SelectedIndex != -1;
                playlistitemVO.ensaio = this.cblCadPlaylistitemEnsaio.SelectedIndex != -1;
                playlistitemVO.evento = this.cblCadPlaylistitemEvento.SelectedIndex != -1;
                playlistitemVO.album = this.cblCadPlaylistitemAlbum.SelectedIndex != -1;
                playlistitemVO.contato = this.cblCadPlaylistitemContato.SelectedIndex != -1;
                playlistitemVO.ativo = this.ddlCadPlaylistitemAtivo.SelectedValue.Equals("S");
                playlistitemVO.edicao = DateTime.Now;
                playlistitemVO.editadoPor = usuarioVO.user;
                this.LookDAOT.setPlaylistitem(playlistitemVO);

                Util.ExibeAlert(this, "Registro salvo com sucesso!");

                this.btnPesquisa_Click(null, null);

                this.txtCadPlaylistitemIdPlayListItem.Text = playlistitemVO.idPlayListItem.ToString();
                this.ltCadPlaylistitemMusicaNome.Text = playlistitemVO.musicaNome;
                this.ltCadPlaylistitemMusicaMime.Text = playlistitemVO.musicaMime;
                this.ltCadPlaylistitemMusicaTamanho.Text = String.Format("{0:n1}", playlistitemVO.musicaTamanho / 1024);
                this.ltPlaylistitemCadastradoPor.Text = playlistitemVO.cadastradoPor;
                this.ltPlaylistitemEditadoPor.Text = playlistitemVO.editadoPor;
                this.ltPlaylistitemDataCadastro.Text = playlistitemVO.cadastro.ToString("dd/MM/yyyy");
                this.ltPlaylistitemDataEdicao.Text = playlistitemVO.edicao.ToString("dd/MM/yyyy");

                this.grvCadPlaylistxPlaylistitem.DataSource = this.LookDAOT.getPlaylistitems(null, Int32.Parse(this.txtCadIdPlayList.Text), null, null, null, null, null, null, null);
                this.grvCadPlaylistxPlaylistitem.DataBind();
            }
            catch { throw; }
        }
        /** protected void btnCadPlaylistitemSalvar_Click(object sender, EventArgs e)
        {

            //Declara objetos
            PlaylistitemVO playlistitemVO = null;
            bool novoRegistro = false;

            try
            {
                //Verifica se o ID é nulo, se sim = cadastro novo
                if (string.IsNullOrEmpty(this.txtCadPlaylistitemIdPlayListItem.Text))
                {
                    playlistitemVO = PlaylistitemVO.CreateVO();
                    playlistitemVO.cadastro = DateTime.Now;
                    playlistitemVO.cadastradoPor = usuarioVO.user;

                    novoRegistro = true;

                }
                //Recupera dados para serem alterados
                else
                {
                    //Recupera dados
                    playlistitemVO = this.LookDAOT.getPlaylistitem(Int32.Parse(this.txtCadPlaylistitemIdPlayListItem.Text));
                }

                playlistitemVO.home = this.cblCadPlaylistitemHome.SelectedIndex != -1;
                playlistitemVO.staff = this.cblCadPlaylistitemStaff.SelectedIndex != -1;
                playlistitemVO.ensaio = this.cblCadPlaylistitemEnsaio.SelectedIndex != -1;
                playlistitemVO.evento = this.cblCadPlaylistitemEvento.SelectedIndex != -1;
                playlistitemVO.album = this.cblCadPlaylistitemAlbum.SelectedIndex != -1;
                playlistitemVO.contato = this.cblCadPlaylistitemContato.SelectedIndex != -1;
                playlistitemVO.idPlayList = Int32.Parse(this.txtCadIdPlayList.Text);
                playlistitemVO.ativo = this.ddlCadPlaylistitemAtivo.SelectedIndex != -1;
                playlistitemVO.edicao = DateTime.Now;
                playlistitemVO.editadoPor = usuarioVO.user;

                //Chama metodo para salvar ou criar novo registro
                if (novoRegistro)
                    playlistitemVO.idPlayListItem = (int)this.LookDAOT.newPlaylistitem(playlistitemVO);
                else
                    this.LookDAOT.setPlaylistitem(playlistitemVO);

                // Exibe msg de sucesso ao salvar registro
                Util.ExibeAlert(this, "Registro salvo com sucesso!");

                //Popula grid atualizado
                this.btnPesquisa_Click(null, null);

                //Atualiza formulario, apos salvar os dados
                this.txtCadPlaylistitemIdPlayListItem.Text = playlistitemVO.idPlayListItem.ToString();
                this.ltCadPlaylistitemMusicaNome.Text = playlistitemVO.musicaNome;
                this.ltCadPlaylistitemMusicaMime.Text = playlistitemVO.musicaMime;
                this.ltCadPlaylistitemMusicaTamanho.Text = String.Format("{0:n1}", playlistitemVO.musicaTamanho / 1024);
                //this.hlCadPlaylistitemMusicaDownload.NavigateUrl = "~/DownPlaylistitemMusica.aspx?idPlayListItem=" + playlistitemVO.idPlayListItem.ToString() + "&controll=" + DateTime.Now.Ticks.ToString();
                this.ltPlaylistitemCadastradoPor.Text = playlistitemVO.cadastradoPor;
                this.ltPlaylistitemEditadoPor.Text = playlistitemVO.editadoPor;
                this.ltPlaylistitemDataCadastro.Text = playlistitemVO.cadastro.ToString("dd/MM/yyyy");
                this.ltPlaylistitemDataEdicao.Text = playlistitemVO.edicao.ToString("dd/MM/yyyy");

                //Habilita botoes do arquivo musica
                //this.btCadPlaylistitemMusicaRemover.Enabled = true;
                //this.afuCadPlaylistitemMusicaUpload.Enabled = true;
                //this.hlCadPlaylistitemMusicaDownload.Enabled = true;
                this.grvCadPlaylistxPlaylistitem.DataSource = this.LookDAOT.getPlaylistitems(null, Int32.Parse(this.txtCadIdPlayList.Text), null, null, null, null, null, null, null);
                this.grvCadPlaylistxPlaylistitem.DataBind();

            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
        */

        protected void btnCadPlaylistitemCancelar_Click(object sender, EventArgs e)
        {
            //Volta para a tab page de pesquisa
            //this.tabPlaylist.ActiveTabIndex = 0;

            // Desabilita os campos para edição
            Util.HabilitarCampos(false, this.panelPlaylistitem);

            // Destrava botão de edição
            this.btnCadPlaylistitemEditar.Enabled = (!string.IsNullOrEmpty(this.txtCadPlaylistitemIdPlayListItem.Text));

            // Destrava botão de exclusao
            this.btnCadPlaylistitemExcluir.Enabled = (!string.IsNullOrEmpty(this.txtCadPlaylistitemIdPlayListItem.Text));

            // Desabilita o botão salvar
            this.btnCadPlaylistitemSalvar.Enabled = false;

            // Desabilita botões do arquivo musica
            //this.btCadPlaylistitemMusicaRemover.Enabled = false;
            //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
            //this.hlCadPlaylistitemMusicaDownload.Enabled = (!string.IsNullOrEmpty(this.ltCadPlaylistitemMusicaNome.Text));

        }

        protected void btnCadPlaylistitemEditar_Click(object sender, EventArgs e)
        {
            // Habilita os campos para edição
            Util.HabilitarCampos(true, this.panelPlaylistitem);

            // Trava apenas os text box da PK
            this.txtCadPlaylistitemIdPlayListItem.Enabled = false;

            // Trava botão de edição
            this.btnCadPlaylistitemEditar.Enabled = false;

            // Trava botão de exclusao
            this.btnCadPlaylistitemExcluir.Enabled = false;

            // Habilita o botão salvar
            this.btnCadPlaylistitemSalvar.Enabled = true;

            // Habilita botões do arquivo musica
            //this.btCadPlaylistitemMusicaRemover.Enabled = true;
            //this.afuCadPlaylistitemMusicaUpload.Enabled = true;
            //this.hlCadPlaylistitemMusicaDownload.Enabled = true;

        }

        protected void btnCadPlaylistitemExcluir_Click(object sender, EventArgs e)
        {
            //Declara objetos
            PlaylistitemVO playlistitemVO = null;

            try
            {
                //Cria objeto
                playlistitemVO = PlaylistitemVO.CreateVO();
                playlistitemVO.idPlayListItem = Int32.Parse(this.txtCadPlaylistitemIdPlayListItem.Text);

                //Chama metodo para excluir registro
                this.LookDAOT.delPlaylistitem(playlistitemVO);

                // Exibe msg de sucesso ao salvar registro
                Util.ExibeAlert(this, "Registro excluido com sucesso!");

                //Limpa formulario, apos salvar os dados
                Util.LimparCampos(this.panelPlaylistitem);
                Util.HabilitarCampos(false, this.panelPlaylistitem);
                this.ltCadPlaylistitemMusicaNome.Text = "";
                this.ltCadPlaylistitemMusicaMime.Text = "";
                this.ltCadPlaylistitemMusicaTamanho.Text = "";
                this.grvCadPlaylistxPlaylistitem.DataSource = this.LookDAOT.getPlaylistitems(null, Int32.Parse(this.txtCadIdPlayList.Text), null, null, null, null, null, null, null);
                this.grvCadPlaylistxPlaylistitem.DataBind();

                this.ltPlaylistitemCadastradoPor.Text = "";
                this.ltPlaylistitemEditadoPor.Text = "";
                this.ltPlaylistitemDataCadastro.Text = "";
                this.ltPlaylistitemDataEdicao.Text = "";

                // Trava botão de edição
                this.btnCadPlaylistitemEditar.Enabled = false;

                // Trava botão de exclusao
                this.btnCadPlaylistitemExcluir.Enabled = false;

                // Desabilita o botão salvar
                this.btnCadPlaylistitemSalvar.Enabled = false;

                // Desabilita botões do arquivo musica
                //this.btCadPlaylistitemMusicaRemover.Enabled = false;
                //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
                //this.hlCadPlaylistitemMusicaDownload.Enabled = false;

            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

        /* protected void btnCadPlaylistitemNovo_Click(object sender, EventArgs e)
        {
            //Limpa formulario, para a entrada de novo registro
            Util.LimparCampos(this.panelPlaylistitem);
            // Habilita os campos para edição
            Util.HabilitarCampos(true, this.panelPlaylistitem);

            this.ltCadPlaylistitemMusicaNome.Text = "";
            this.ltCadPlaylistitemMusicaMime.Text = "";
            this.ltCadPlaylistitemMusicaTamanho.Text = "";
            this.ltPlaylistitemCadastradoPor.Text = "";
            this.ltPlaylistitemEditadoPor.Text = "";
            this.ltPlaylistitemDataCadastro.Text = "";
            this.ltPlaylistitemDataEdicao.Text = "";

            // Trava apenas os text box da PK
            this.txtCadPlaylistitemIdPlayListItem.Enabled = false;

            // Trava botão de edição
            this.btnCadPlaylistitemEditar.Enabled = false;

            // Trava botão de exclusao
            this.btnCadPlaylistitemExcluir.Enabled = false;

            // Trava botão de novo
            this.btnCadPlaylistitemNovo.Enabled = false;

            // Habilita o botão salvar
            this.btnCadPlaylistitemSalvar.Enabled = true;

            // Desabilita botões do arquivo musica
            //this.btCadPlaylistitemMusicaRemover.Enabled = false;
            //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
            //this.hlCadPlaylistitemMusicaDownload.Enabled = false;

            this.txtCadPlaylistitemIdPlayListItem.Text = Convert.ToString(ViewState["IdPlaylist"]);

        } */

        protected void imgbCadPlaylistitemVisualizar_Click(object sender, ImageClickEventArgs e)
        {
            // Declara objetos
            PlaylistitemVO playlistitemVO = null;
            int idPlayListItem = 0;

            try
            {
                //Recupera os argumentos com o ID do objeto
                string[] argumentos = ((ImageButton)sender).CommandArgument.Split(';');
                idPlayListItem = Int32.Parse(argumentos[0]);

                //Recupera o objeto
                playlistitemVO = this.LookDAOT.getPlaylistitem(idPlayListItem);

                this.cblCadPlaylistitemHome.SelectedIndex = (playlistitemVO.home ?? false) ? 0 : -1;
                this.cblCadPlaylistitemStaff.SelectedIndex = (playlistitemVO.staff ?? false) ? 0 : -1;
                this.cblCadPlaylistitemEnsaio.SelectedIndex = (playlistitemVO.ensaio ?? false) ? 0 : -1;
                this.cblCadPlaylistitemEvento.SelectedIndex = (playlistitemVO.evento ?? false) ? 0 : -1;
                this.cblCadPlaylistitemAlbum.SelectedIndex = (playlistitemVO.album ?? false) ? 0 : -1;
                this.cblCadPlaylistitemContato.SelectedIndex = (playlistitemVO.contato ?? false) ? 0 : -1;
                this.txtCadPlaylistitemIdPlayListItem.Text = playlistitemVO.idPlayListItem.ToString();
                this.ddlCadPlaylistitemAtivo.SelectedValue = (playlistitemVO.ativo == null ? " " : (playlistitemVO.ativo.Value ? "S" : "N"));
                this.ltCadPlaylistitemMusicaNome.Text = playlistitemVO.musicaNome;
                this.ltCadPlaylistitemMusicaMime.Text = playlistitemVO.musicaMime;
                this.ltCadPlaylistitemMusicaTamanho.Text = String.Format("{0:n1}", playlistitemVO.musicaTamanho / 1024);
                //this.hlCadPlaylistitemMusicaDownload.NavigateUrl = "~/DownPlaylistitemMusica.aspx?idPlayListItem=" + playlistitemVO.idPlayListItem.ToString() + "&controll=" + DateTime.Now.Ticks.ToString();
                this.ltPlaylistitemCadastradoPor.Text = playlistitemVO.cadastradoPor;
                this.ltPlaylistitemEditadoPor.Text = playlistitemVO.editadoPor;
                this.ltPlaylistitemDataCadastro.Text = playlistitemVO.cadastro.ToString("dd/MM/yyyy");
                this.ltPlaylistitemDataEdicao.Text = playlistitemVO.edicao.ToString("dd/MM/yyyy");

                //Desabilita campos para edição
                Util.HabilitarCampos(false, this.panelPlaylistitem);

                //Desabilita botão salvar
                this.btnCadPlaylistitemSalvar.Enabled = false;

                //Habilita botão editar
                this.btnCadPlaylistitemEditar.Enabled = true;

                //Habilita botão excluir
                this.btnCadPlaylistitemExcluir.Enabled = true;

                // Desabilita botões do arquivo musica
                //this.btCadPlaylistitemMusicaRemover.Enabled = false;
                //this.afuCadPlaylistitemMusicaUpload.Enabled = false;
                //this.hlCadPlaylistitemMusicaDownload.Enabled = (!string.IsNullOrEmpty(this.ltCadPlaylistitemMusicaNome.Text));

            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        protected void imgbCadPlaylistitemMusicaRemover_Click(object sender, ImageClickEventArgs e)
        {
            PlaylistitemVO playlistitemVO = PlaylistitemVO.CreateVO();
            playlistitemVO.idPlayListItem = Int32.Parse((sender as ImageButton).CommandArgument);
            this.LookDAOT.delPlaylistitem(playlistitemVO);

            this.grvCadPlaylistxPlaylistitem.DataSource = this.LookDAOT.getPlaylistitems(null, Int32.Parse(this.txtCadIdPlayList.Text), null, null, null, null, null, null, null);
            this.grvCadPlaylistxPlaylistitem.DataBind();

            Util.ExibeAlert(this, "Arquivo removido!");
        }
        #endregion

        protected void cblToSession(object sender, EventArgs e)
        {
            CheckBoxList cblSender = sender as CheckBoxList;
            Session[cblSender.ID] = cblSender.SelectedIndex != -1;
        }
        protected void ddlToSession(object sender, EventArgs e)
        {
            DropDownList ddlSender = sender as DropDownList;
            Session[ddlSender.ID] = ddlSender.SelectedValue;
        }

    }
}
